diff options
Diffstat (limited to 'app/[lng]/admin/ecc/page.tsx')
| -rw-r--r-- | app/[lng]/admin/ecc/page.tsx | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/app/[lng]/admin/ecc/page.tsx b/app/[lng]/admin/ecc/page.tsx index bb3168c4..257ecfea 100644 --- a/app/[lng]/admin/ecc/page.tsx +++ b/app/[lng]/admin/ecc/page.tsx @@ -25,6 +25,11 @@ interface TestResult { responseData?: string timestamp: string duration?: number + statusCode?: number + endpoint?: string + headers?: Record<string, string> + requestXml?: string + requestHeaders?: Record<string, string> } export default function ECCSenderTestPage() { @@ -46,7 +51,12 @@ export default function ECCSenderTestPage() { message: result.message, responseData: result.responseData, timestamp: new Date().toLocaleString('ko-KR'), - duration + duration, + statusCode: result.statusCode, + endpoint: result.endpoint, + headers: result.headers, + requestXml: result.requestXml, + requestHeaders: result.requestHeaders } setTestResults(prev => ({ ...prev, [testName]: testResult })) @@ -681,6 +691,11 @@ function TestResultCard({ result, title }: { result: TestResult; title: string } <XCircle className="h-4 w-4 text-red-600" /> )} <span className="font-semibold">{title}</span> + {typeof result.statusCode !== 'undefined' && ( + <Badge variant="outline" className="text-xs"> + HTTP {result.statusCode} + </Badge> + )} <Badge variant="outline" className="text-xs"> {result.duration}ms </Badge> @@ -691,6 +706,33 @@ function TestResultCard({ result, title }: { result: TestResult; title: string } <AlertDescription className="mt-2"> <div className="space-y-2"> <p>{result.message}</p> + {result.endpoint && ( + <p className="text-xs text-muted-foreground break-all"><span className="font-medium">Endpoint:</span> {result.endpoint}</p> + )} + {result.headers && ( + <details className="text-xs"> + <summary className="cursor-pointer font-medium">응답 헤더 보기</summary> + <pre className="mt-2 p-2 bg-gray-100 rounded text-xs overflow-auto max-h-40"> + {Object.entries(result.headers).map(([k, v]) => `${k}: ${v}`).join('\n')} + </pre> + </details> + )} + {result.requestHeaders && ( + <details className="text-xs"> + <summary className="cursor-pointer font-medium">요청 헤더 보기</summary> + <pre className="mt-2 p-2 bg-gray-100 rounded text-xs overflow-auto max-h-40"> + {Object.entries(result.requestHeaders).map(([k, v]) => `${k}: ${v}`).join('\n')} + </pre> + </details> + )} + {result.requestXml && ( + <details className="text-xs"> + <summary className="cursor-pointer font-medium">요청 XML 보기</summary> + <pre className="mt-2 p-2 bg-gray-100 rounded text-xs overflow-auto max-h-60 whitespace-pre-wrap break-words"> + {result.requestXml} + </pre> + </details> + )} {result.responseData && ( <details className="text-xs"> <summary className="cursor-pointer font-medium">응답 데이터 보기</summary> |
